#include "User_App.h"
#include "bsp_port.h"
#include "bsp_Timer.h"
#include "AIP650.h"

bsp_TIM_t Ti_KEY;

void bsp_Ti_Debug(void); // 调试函数，用于快速进行调试，验证是否移植成功
void bsp_Key_Debug(void);

void Ti_KEY_event(void);

void User_App(void)
{
#if 0

  // LED_Run_Debug();
  // bsp_Ti_Debug();
  bsp_Key_Debug();

#else
  AIP650_Init();

  Ti_obj_New(&Ti_KEY, 80, Ti_RUN, Ti_KEY_event);

  while (1)
  {
    bsp_Ti_All_Handle();
  }
#endif
}
/*  @brief  运行灯函数
    @return 无
    @property 无
*/
void Ti_RUN_LED_event(void)
{
  LED_RUN_TOGG;
  // KEY_SCL_TOGG;
  // KEY_SDA_TOGG;
}
/*  @brief  按键读取函数
    @return 无
    @property 无
*/
void Ti_KEY_event(void)
{
  static uint32_t KeyPreValue = 0;
  uint32_t KeyValue = 0;

  // KeyValue = 0;
  KeyValue = AIP_GetKeyValue(); // 读取键值

  if (KeyPreValue == KeyValue)
  {
    return;
  }

  switch (KeyValue)
  {
  case 1:
    LIGHT_TOGG;
    break;
  case 2:
    LED_RUN_TOGG;
    break;
  case 3:
    LED_RUN_TOGG;
    break;
  case 4:
    LED_RUN_TOGG;
    break;
  case 5:
    LED_RUN_TOGG;
    break;
  case 6:
    LED_RUN_TOGG;
    break;
  case 7:
    LED_RUN_TOGG;
    break;
  case 8:
    LED_RUN_TOGG;
    break;
  case 9:
    LED_RUN_TOGG;
    break;
  case 10:
    LED_RUN_TOGG;
    break;
  case 11:
    LED_RUN_TOGG;
    break;
  case 12:
    LED_RUN_TOGG;
    break;
  case 13:
    LED_RUN_TOGG;
    break;
  case 14:
    LED_RUN_TOGG;
    break;
  case 15:
    LED_RUN_TOGG;
    break;
  default:
    break;
  }
  KeyPreValue = KeyValue;
}

void LED_Run_Debug(void)
{
  while (1)
  {
    LED_RUN_TOGG;
    LL_mDelay(500);
  }
}
bsp_TIM_t Ti_RUN_LED;
/*  @brief  定时任务调试程序
    @return 无
    @property 调试时用
*/
void bsp_Ti_Debug(void)
{
  Ti_obj_New(&Ti_RUN_LED, 500, Ti_RUN, Ti_RUN_LED_event);

  while (1)
  {
    bsp_Ti_All_Handle();
  }
}
/*  @brief  按键调试
    @return 无
    @property 调试时用
*/
void bsp_Key_Debug(void)
{

  Ti_obj_New(&Ti_KEY, 80, Ti_RUN, Ti_KEY_event);

  while (1)
  {
    bsp_Ti_All_Handle();
  }
}
